跳至主要内容

LLM 訓練服務使用說明

概述

本專案流程提供模型微調訓練服務,使用者可自行選擇基礎模型(base model),並且自行提供訓練資料,進行特定任務/能力微調。

專案執行位置: https://jenkins.genai.nchc.org.tw/job/02-llm%20training/

前置需求

GitLab 專案 (Repository)

使用者將藉由 Gitlab Repository 提供微調訓練資料,請按照以下步驟完成前置準備:

  1. 請先自行建立專案

  2. 申請存取令牌(Access tokens)
    (1) 申請方式:進入欲使用的專案 -> Settings -> Access tokens -> Add new token
    (2) Scopes 選擇 read_repository, write_repository
    (3) Role 選擇 Maintainer 或 Owner
    (4) 存取令牌申請完成後,請務必存放在安全的地方,離開頁面後便無法再取得

    alt text

  3. 取得專案 URL GIT_REPO_URL

    alt text

  4. 將你的資料放置到專案並上傳

    如果你的資料小於100MB

    git clone <GIT_REPO_URL>
    cd <git_repo_dir>
    cp <DATA_FILES> . # 將你的資料複製到專案路徑
    git push origin main # 推回你的遠端專案

    如果你的資料大於100MB,請使用 git LFS 安裝頁面
    Ubuntu 安裝 GIT LFS

    # Install Git LFS
    curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    sudo apt-get update
    sudo apt-get install git-lfs
    git lfs install

    # 設定 LFS track,這裡假設要追蹤 .jsonl 檔案類型
    git lfs track "*.jsonl"
    git add .
    git commit -m "設定 LFS 追蹤 .jsonl 檔案"

參數說明

基本設定

參數名稱類型說明
GIT_REPO_URL字串『必填』請填入自行建立的 Git repository URL (例: https://gitlab.genai.nchc.org.tw/swchen/rhap-press-demo.git)
GIT_REPO_TOKEN密碼Git repository 的存取令牌 (Access token); 請參考前置需求(需有 Maintainer/Owner 權限; 例: glpat-xxx)

服務專屬設定

模型相關參數

參數名稱類型說明
BASE_MODEL下拉選單選擇基礎模型 (支援 1B/3B/8B 多種規格)

流程參數

參數名稱類型說明
DATA_FILES字串訓練資料檔案路徑,多檔案請用逗號分隔,如:data/train_set_1.jsonl, data/train_set_2.jsonl
僅接受 JSONL 格式檔案
MAX_EPOCHS下拉選單最大訓練週期數 (1~5),預設 1

進階設定

參數名稱類型說明
DEEPSPEED_ZERO_STAGE下拉選單1/2/3,DeepSpeed 優化階段 (1=最快但耗記憶體)
MAX_MODEL_LENGTH下拉選單2048/4096/8192/16384,模型上下文最大長度

硬體配置

參數名稱類型說明
HARDWARE_TYPE下拉選單h100/v100,選擇 GPU 類型
GPU_COUNTS下拉選單1/2/4/8,使用的 GPU 數量

使用步驟

操作流程

alt text

輸出結果

訓練完成後會自動上傳至指定倉庫,結構如下:

trained_models/
└── [RUN_ID]/
├── model/ # 轉換後的HuggingFace格式模型
└── log/ # 訓練日誌與監控數據

注意事項

  1. 模型限制

    • NCHC Llama-3-8B 最大上下文長度限制為 8192
    • 使用 H100 時會自動啟用 bfloat16 精度
  2. 資源建議

    模型規格建議 GPU 數量最小 VRAM
    1B/3B1-224GB
    8B4-840GB
  3. 失敗處理

    • 訓練失敗時會自動寄送錯誤通知信

常見問題

Q: 如何取得 DATA_REPO_TOKEN?
A: 請至 GitLab/Github → User Settings → Access Tokens 建立含 read repository / write repository 權限的權杖

Q: 訓練資料格式要求?
A: 需使用標準 JSONL 格式,範例結構:

{"messages": [{"role": "system", "content": ""}, {"role": "user", "content": "交通部函知各縣市政府辦理交通建設工作一案,我要寫一份簽陳核示後,以便簽全案陳請首長室參酌。請提供簽及便簽主旨及說明,交通部來函如下:\n\n主旨:檢送交通建設工作計畫一份,請查照。\n說明:\n一、依據交通部來函辦理。\n二、檢送交通建設工作計畫一份。"}, {"role": "assistant", "content": "<think>\n首先,我們需要了解指令的內容,即交通部函知各縣市政府辦理交通建設工作一案。接下來,我們需要根據交通部來函的內容,撰寫一份簽陳核示的公文。簽陳核示的公文需要包括主旨、說明等部分。在主旨部分,我們需要簡明扼要地表達公文的內容。在說明部分,我們需要根據交通部來函的內容,列出相關的依據和內容。另外,我們還需要撰寫便簽說明,包括相關的背景、內容和處理方式。最後,我們需要根據相關的法規和政策,確保公文的內容正確、完整。\n</think>\n\n簽內容擬稿如下:\n主旨:有關交通建設工作計畫一案,簽請核示。\n說明:\n一、依據交通部本(O)年O月O日O字第O號函辦理。                      \n二、來文內容如下:交通部為加強交通建設工作,特檢送交通建設工作計畫一份,請各縣市政府參酌辦理。\n三、旨揭更新版交通建設工作計畫陳送首長室保管使用。\n\n便簽說明如下:\n\n一、有關交通部製作之「交通建設工作計畫」,業經O年O月O日O號簽準在案,謹請鈞閱。\n二、另舊版交通建設工作計畫,敬請逕行銷毀。\n三、謹陳「交通建設工作計畫」暨原簽陳影本各1份。"}]}
{"messages": [{"role": "system", "content": ""}, {"role": "user", "content": "內政部檢送「都市更新條例」修正草案,請財政部於110年6月30日前提出審查意見"}, {"role": "assistant", "content": "<think>\n首先,我們需要了解指令的內容,即內政部檢送「都市更新條例」修正草案,請財政部提出審查意見。接下來,我們需要根據相關法規和作業要點進行思考。在這個案例中,財政部需要根據「財政部審查都市更新事業財務計畫作業要點」進行審查。因此,我們需要思考如何根據這些規定提出審查意見。最後,我們需要根據思考結果撰寫公文內容,包括主旨、說明等部分。\n</think>\n\n函:\n主旨:有關「都市更新條例」修正草案審查意見\n說明:\n一、復貴部○○○年○月○○日內授都市字第1100000000號函。\n二、依「財政部審查都市更新事業財務計畫作業要點」規定,財政部應審查都市更新事業之財務計畫,確保其財務可行性。\n三、查修正草案中有關都市更新事業財務計畫之規定,財政部認為應加強財務審查機制,避免都市更新事業財務風險。"}]}
{"messages": [{"role": "system", "content": ""}, {"role": "user", "content": "請各機關學校填報有關「能源節約」執行成果,請提供書函的主旨與說明"}, {"role": "assistant", "content": "<think>\n首先,我們需要了解指令的內容,即各機關學校需要填報有關「能源節約」執行成果的相關資料。根據指令,需要提供書函的主旨與說明。因此,我們需要根據經濟部的相關規定和檔案,撰寫書函的內容。書函的主旨應該明確指出填報的目的和截止日期,說明部分則需要提供相關的背景、填報專案和注意事項。根據經濟部的檔案和規定,能源節約是重要的工作,因此需要各機關學校積極參與和填報相關資料。\n</think>\n\n主旨:為協助經濟部統計有關「能源節約」執行成果,請於○○○年○○月○○日前依附件格式填報相關表格(如附件1、2),無執行成果者亦請回復,請查照。\n說明:\n一、依經濟部○○○年○月○○日經授能字第1130760452號函辦理。\n二、為推動能源節約,請各機關學校繼續規劃相關推動內容及作為,並依附件格式填報○○○年○月○日至○○○年○月○○日之推動成果,本次填報專案說明及注意事項詳如附件3。"}]}
{"messages": [{"role": "system", "content": ""}, {"role": "user", "content": "文化部來函申請文化藝術計畫經費,請擬1份回函給文化部,並提供回覆的書函主旨及說明。文化部來函主旨如下:\n○○○年度文化藝術計畫經費補助,核定編號○○○,請審核。"}, {"role": "assistant", "content": "<think>\n首先,我們需要了解文化部的來函內容,包括申請補助經費的目的和金額。接下來,我們需要根據相關法規和程式進行審核和核定。根據文化部的規定,文化藝術機構需要提交經費補助申請表,並提供詳細的經費明細。經過審核後,文化部將撥付補助款項至文化藝術基金專戶。因此,在回覆中,我們需要明確表示同意補助的金額和撥付方式。\n</think>\n\n回函主旨及說明如下:\n主旨:所送文化部申請○○○年度文化藝術計畫經費補助事,復如說明,請查照。\n說明: \n一、復文化部○年○月○日○號函。\n二、本案(計畫編號:○)所送經費補助申請表經審核,同意補助新臺幣○元;款項將由文化部直接撥付至文化藝術基金專戶。"}]}

Q: 如何監控訓練過程?
A: 日誌目錄包含以下監控檔案:

  • metrics.csv:訓練指標記錄
  • hparams.yaml:訓練參數備份

Q: 我想知道 Pipeline 有哪些運作階段
A:
alt text